#define _CRT_SECURE_NO_WARNINGS 1

// 判断素数的时候，注意到一个定理
// 一个非素数，至少有一个因数<=sqrt(本身)

// go to语句可以跳到指定位置
// // 不太建议使用，可能会导致在函数内部乱跳转
// 但是goto语句也并非一无是处，在多层循环的代码中，快速跳出用goto就很方便

//#include <stdio.h>
//
//int main()
//{
//	printf("HeHe\n");
//	goto flag;
//	printf("HaHa\n");
//
//flag:
//	printf("HeiHei\n");
//
//	return 0;
//}

//#include <time.h>
//#include <stdio.h>
//#include <stdlib.h>
//
//// 函数
//void menu()
//{
//	printf("********************\n");
//	printf("*****  1.play  *****\n");
//	printf("*****  0.exit  *****\n");
//	printf("********************\n");
//}
//
//// 猜数字游戏的实现
//void game()
//{
//	int ret = rand() % 100 + 1;
//	int guess = 0;
//	int count = 5;
//	while (1)
//	{
//		printf("请猜数字:>");
//		scanf("%d", &guess);
//
//		if (guess < ret) {
//			printf("猜小了\n");
//		}
//		else if (guess < ret) {
//			printf("猜大了\n");
//		}
//		else {
//			printf("恭喜你，猜对了\n");
//			break;
//		}
//		count--;
//		if (count == 0) {
//			printf("猜失败了，正确的数字是:%d\n", ret);
//			break;
//		}
//	}
//
//}
//
//int main()
//{
//	// 1.随机生成数 (1 ~ 100)
//	// time函数返回的是一个时间戳
//	// 随机数种子不要一直生成，不要把随机数生成放到循环里面
//
//	srand((unsigned int)time(NULL));
//	// 如果要生成a ~ b的随机数，可以用a + rand() %（b - a）+ 1 
//	int input = 0;
//	do
//	{
//		menu();
//
//		printf("请选择：>");
//		scanf("%d", &input);
//
//		switch (input)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			printf("退出游戏\n");
//			break;
//		default:
//			printf("选择错误\n");
//			break;
//		}
//	} while (input);
//
//	return 0;
//}

// 数组是一组相同类型元素的集合
// 数组的初始化用得是{}括号

//#include <stdio.h>
//
//int main()
//{
//	// 不完全初始化
//	int data1[10] = { 1,2,3 };
//
//	// 完全初始化
//	int data2[10] = { 1,2,3,4,5,6,7,8,9,10 };
//
//	// 初始化的时候，括号内的数字可以省略，交给编译器来指定大小
//	// 一堆数据在内存的存储
//	// 计算机处理的数据，都要加载到内存中处理
//	// 内存会被划分为一个个的内存单元
//	// 然后给每个内存单元都编上号
//	// 一维数组在内存中是连续存放的
//
//	return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6 };
//	printf("%d\n", sizeof(arr)); // 计算的数组的总大小，单位是字节
//	printf("%d\n", sizeof(arr) / sizeof(arr[0])); // 求数组个数
//
//	return 0;
//}

// 程序尽量不要写死，给足余地
//#include <stdio.h>
//
//int main()
//{
//	int arr[5][3] = { 1,2,3,5,4,5 };
//	// 依次初始化每一行，当不够的时候，剩余的元素初始化为0
//	// 初始化可以进行省略，但是行可以省略，列不能省略
//
//	return 0;
//}

// C99的变长数组
// C99之前，数组的大小是由常量指定的
// C99之后，引入了变长数组的概念，可以使用变量来指定数组的大小
// 可是VS不行


//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//#include <windows.h>
//
//int main()
//{
//	char arr1[] = "Welcome to bit!!!";
//	char arr2[] = "#################";
//
//	int left = 0;
//	int right = strlen(arr1) - 1;
//
//	while (left <= right) {
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//
//		printf("%s\n", arr2);
//
//		system("cls"); // system函数是库函数，执行系统指令，cls是清理控制台屏幕信息
//		Sleep(1000); // 睡眠1000毫秒
//
//		left++;
//		right--;
//	}
//
//	return 0;
//}














